package com.marvels.financial.pay.hlbpay.service;

import java.util.Map;

import com.marvels.common.dto.pay.McfeRepaymentTradeDetails;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.financial.pay.hlbpay.dto.HlbBindCardDTO;
import com.marvels.financial.pay.hlbpay.dto.HlbDirectPaymentDTO;
import com.marvels.financial.pay.hlbpay.dto.HlbDirectPaymentQueryDTO;
import com.marvels.financial.pay.hlbpay.dto.HlbPrebindCardDTO;
import com.marvels.financial.pay.hlbpay.dto.HlbReturnDTO;
import com.marvels.financial.pay.hlbpay.dto.request.BindCardSendValidateCodeVo;
import com.marvels.financial.pay.hlbpay.dto.request.ConfirmBindPayVo;
import com.marvels.financial.pay.hlbpay.dto.request.QuickPayBindCardPreOrderVo;
import com.marvels.financial.pay.hlbpay.dto.request.QuickPayBindPayPreOrderVo;

public interface HlbPayApi {
	
	/**
	 * 合利宝预绑卡（鉴权绑卡预下单  + 鉴权绑卡短信接口 同时触发）
	 * @param bindCardDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String, Object> prebindCard(HlbPrebindCardDTO bindCardDTO)  throws MarvelsBusinessException;

	
	/**
	 * 合利宝绑卡
	 * @param bindCardDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public  Map<String, Object> bindCard(HlbBindCardDTO bindCardDTO)  throws MarvelsBusinessException;
	
	/**
	 * 合利宝协议支付类交易(代扣)
	 * @param baoFuDirectPaymentDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public  Map<String, Object> directPayment(HlbDirectPaymentDTO directPaymentDTO)  throws MarvelsBusinessException;
	
	/**
	 * 合利宝协议支付交易结果查询(代扣) 绑卡支付预下单 + 绑卡支付确认
	 * @param map
	 * @return
	 */
	public  Map<String, Object> directPaymentQuery(HlbDirectPaymentQueryDTO directPaymentQueryDTO)  throws MarvelsBusinessException;
	
	/**
	 * 合利宝代付
	 * @param map
	 * @return
	 */
	public  Map<String, Object> pay(McfeRepaymentTradeDetails tradeDetail);

	/**
	 * 合利宝代付结果查询
	 * @param map
	 * @return
	 */
	public  Map<String, Object> payResultQuery(McfeRepaymentTradeDetails tradeDetail);
}
